<!DOCTYPE html>
<html lang="fr">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<p class="desc">
			Un AnimationClip est un ensemble réutilisable de pistes de keyframes qui représentent une animation.<br /><br />

			Pour un aperçu des différents éléments du système d'animation de three.js consultez
			l'article "Système d'Animation" dans le section "Étapes Suivantes" du manuel.
		</p>


		<h2>Constructeur</h2>


		<h3>[name]( [param:String name], [param:Number duration], [param:Array tracks] )</h3>
		<p>
			[page:String name] - un nom pour ce clip.<br />
			[page:Number duration] - la durée du clip (en secondes). Si une valeur négative est renseignée,
			la durée sera calculée depuis le tableau `tracks` passé en paramètres.<br />
			[page:Array tracks] - un tableau de [page:KeyframeTrack KeyframeTracks].<br /><br />

			Note: Au lieu d'instantier un AnimationClip directement avec le constructeur, vous pouvez utiliser une de
			ses méthodes statiques pour créer des AnimationClips: depuis un JSON ([page:.parse parse]), depuis une séquence de
			morph target ([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
			[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences]) ou depuis
			une hiérarchie d'animations ([page:.parseAnimation parseAnimation]) - si votre modèle n'a pas encore
			d'AnimationClips dans le tableau d'animations de sa forme.
		</p>


		<h2>Propriétés</h2>


		<h3>[property:Number duration]</h3>
		<p>
			La durée de ce clip (en secondes). Elle peut être calculée depuis le tableau [page:.tracks tracks]
			via [page:.resetDuration resetDuration].
		</p>

		<h3>[property:String name]</h3>
		<p>
			Un nom pour ce clip. Un clip peut être recherché via [page:.findByName findByName].
		</p>

		<h3>[property:Array tracks]</h3>
		<p>
			Un tableau contenant un [page:KeyframeTrack] pour chaque propriété qui est animée par ce clip.
		</p>

		<h3>[property:String uuid]</h3>
		<p>
			Le [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] de cette instance du clip.
			Elle est assignée automatiquement et ne doit pas être modifiée.
		</p>


		<h2>Méthodes</h2>


		<h3>[method:AnimationClip clone]()</h3>
		<p>
			Renvoie une copie de ce clip.
		</p>

		<h3>[method:this optimize]()</h3>
		<p>
			Optimise chaque track en retirant les clés séquentielles équivalentes (qui sont communes dans les séquences
			de morph target).
		</p>

		<h3>[method:this resetDuration]()</h3>
		<p>
			Fixe la [page:.duration durée] de ce clip à la durée de son plus long
			[page:KeyframeTrack].
		</p>

		<h3>[method:Object toJSON]()</h3>
		<p>
			Renvoie un objet JSON représentant le clip d'animation serialisé.
		</p>

		<h3>[method:this trim]()</h3>
		<p>
			Réduit la durée de chaque track à celle du clip.
		</p>

		<h3>[method:Boolean validate]()</h3>
		<p>
			Performe une validation minimale de chaque track du clip. Renvoie true si toutes les tracks sont valides.
		</p>


		<h2>Méthodes Statiques</h2>


		<h3>[method:Array CreateClipsFromMorphTargetSequences]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
		<p>
			Renvoie un tableau de nouveaux AnimationClips créés depuis les séquences de morph
			target d'une forme, essayant de trier les noms des morph targets en un pattern basé sur le groupe d'animation
			comme "Walk_001, Walk_002, Run_001, Run_002 ...".
		</p>

		<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [param:String name], [param:Array morphTargetSequence], [param:Number fps], [param:Boolean noLoop] )</h3>
		<p>
			Renvoie un nouvel AnimationClip depuis le tableau de morph targets d'une forme, prenant un nom et un nombre de frames par secondes.<br /><br />

			Note: Le paramètre fps est requis, mais la vitesse d'animation peut être écrasée dans un
			`AnimationAction` via [page:AnimationAction.setDuration animationAction.setDuration].
		</p>

		<h3>[method:AnimationClip findByName]( [param:Object objectOrClipArray], [param:String name] )</h3>
		<p>
			Cherche un AnimationClip grâce à son nom, prenant en premier paramètre un tableau
			d'AnimationClips, un mesh ou une forme qui contient un tableau nommé "animations".
		</p>

		<h3>[method:AnimationClip parse]( [param:Object json] )</h3>
		<p>
			Analyse une représentation JSON d'un clip et renvoie un AnimationClip.
		</p>

		<h3>[method:AnimationClip parseAnimation]( [param:Object animation], [param:Array bones] )</h3>
		<p>
			Analyse le format de l'animation.hierarchy et retourne un AnimationClip.
		</p>

		<h3>[method:Object toJSON]( [param:AnimationClip clip] )</h3>
		<p>
			Prends un AnimationClip et renvoie un objet JSON.
		</p>


		<h2>Source</h2>


		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
